import { login } from '@/common/request';
import { Toast }  from "vant"
import router from "@/router"


let userinfo = sessionStorage.getItem("userinfo") ? JSON.parse(sessionStorage.getItem("userinfo")):{}

// 一个模块就是一个对象！
export default {
    namespaced: true,  // 命名空间！
    // 模块里面的state是 函数，且返回对象！
    state: () => ({
        userinfo: userinfo
    }),
    getters: {
    },
    mutations: {
        SETUSERINFO(state,info){
            // 设置给state
            state.userinfo = info
            // 放在本地
            sessionStorage.setItem("userinfo",JSON.stringify(info))
        },
        QUIT(state){
            // 设置给state
            state.userinfo = {}
            // 放在本地
            sessionStorage.removeItem("userinfo") 
        }
    },
    actions: {
        // 注意： 组件页面里面的dispatch只有两个参数！ 在actions里面的store里面的dispatch有三个参数！
        async login(store,data){
            // 发送登录的ajax
            let res = await login(data)
            // 设置用户数据
            store.commit('SETUSERINFO',res)
            // 修改根的state  {root:true}
            store.commit('CHANGELOGIN',true,{root:true})
            // 获取购物车列表
            store.dispatch('cart/get_car_list', null, { root: true })
            Toast({
                type: "success",
                message: "登录成功",
                onClose: () => {
                    router.back();
                }
            });
        },
        quit({commit}){
            commit('QUIT')
            commit('CHANGELOGIN', false, { root: true })
            commit('cart/REMOVECARLIST', null, { root: true })
        }
    }
}